// 进行经纬度转换为距离的计算
function Rad(d) {
    // 将度转换为弧度，以便后续三角函数计算
    return d * Math.PI / 180.0; 
}


/*
 计算距离，参数分别为第一点的纬度，经度；第二点的纬度，经度
 默认单位km
*/
export const getMapDistance = (lat1, lng1, lat2, lng2) => {
    // 将第一个点的纬度转换为弧度
    var radLat1 = Rad(lat1);
    // 将第二个点的纬度转换为弧度
    var radLat2 = Rad(lat2);
    // 计算两个点纬度的差值（弧度）
    var a = radLat1 - radLat2;
    // 计算两个点经度的差值（弧度）
    var b = Rad(lng1) - Rad(lng2);
    // 使用 Haversine 公式计算两点之间的距离
    var s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) +
        Math.cos(radLat1) * Math.cos(radLat2) * Math.pow(Math.sin(b / 2), 2)));
    // 乘以地球半径，得到距离（单位：千米），地球平均半径约为 6378.137 千米
    s = s * 6378.137; 
    // 对距离结果进行四舍五入，保留四位小数
    s = Math.round(s * 10000) / 10000; 
    // 将距离结果保留两位小数
    s = s.toFixed(2); 
    // 返回计算得到的距离结果
    return s; 
}